package com.ph.shopping.facade.permission.service;

import com.ph.shopping.common.core.exception.BizException;
import com.ph.shopping.common.util.page.PageBean;
import com.ph.shopping.common.util.result.Result;
import com.ph.shopping.facade.permission.dto.RoleDto;
import com.ph.shopping.facade.permission.dto.RoleMenuDto;
import com.ph.shopping.facade.permission.entity.Role;

/**
 * @项目：phshopping-facade-permission
 * @描述：角色接口
 * @作者： Mr.zheng
 * @创建时间：2017-03-13
 * @Copyright @2017 by Mr.zheng
 */
public interface IRoleService {

    /**
     * 新增角色
     * @return
     * @throws BizException
     */
    Result addRole(Role role) throws BizException;

    /**
     * 修改角色
     * @return
     * @throws BizException
     */
    Result updateRole(Role role) throws BizException;

    /**
     * 删除角色
     * @return
     * @throws BizException
     */
    Result deleteRole(Role role) throws BizException;

    /**
     * 启用或者停用角色
     * @param role
     * @return
     * @throws BizException
     */
    Result enableOrDisableRole(Role role) throws BizException;

    /**
     * 分页查询角色
     * @param roleDto
     * @return Result
     */
    Result getRoleByPage(PageBean page,RoleDto role);

    /**
     * 通过角色id查询菜单
     * @param roleID
     * @return Result
     */
    Result getRoleMenuByRoleID(Long roleID);

    /**
     * 查询所有的角色
     * @return
     */
    Result getAllRole();

    /**
     * 查询角色信息
     * @param role
     * @return
     */
    Result getRoleById(Integer id);


    /**
     * 角色赋予菜单
     * @param roleMenuDto
     * @return
     * @throws BizException
     */
    Result updateRoleMenu(RoleMenuDto roleMenuDto) throws BizException;

}
